" ========== 基础配置 ==========
set number                      " 显示行号
set relativenumber              " 相对行号
set tabstop=4                   " 制表符宽度为4
set shiftwidth=4                " 自动缩进宽度为4
set expandtab                   " 将制表符转换为空格
set autoindent                  " 启用自动缩进
set smartindent                 " 启用智能缩进
set cursorline                  " 高亮当前行
set clipboard=unnamedplus       " 系统剪贴板共享
set encoding=utf-8              " 使用UTF-8编码
set background=dark             " 适合深色主题

" ========== vim-plug 插件管理 ==========
call plug#begin('~/.config/nvim/plugged')  " 插件安装目录

" 文件树插件
Plug 'preservim/nerdtree'

" Python 自动补全和语法高亮
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" Markdown 实时预览
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && npm install' }

call plug#end()

" ========== 插件配置 ==========
" 1. 配置文件树
nmap <C-n> :NERDTreeToggle<CR>  " 使用 Ctrl+n 打开/关闭文件树
let NERDTreeShowHidden=1        " 显示隐藏文件

" 2. 配置 coc.nvim (Python 自动补全)
" 按下 Tab 键触发补全
inoremap <silent><expr> <TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
inoremap <silent><expr> <S-TAB> pumvisible() ? "\<C-p>" : "\<S-TAB>"

" 使用 <leader>rn 重命名变量
nmap <silent> <leader>rn <Plug>(coc-rename)

" 启用语法高亮
autocmd FileType python setlocal expandtab shiftwidth=4 softtabstop=4

" 3. 配置 Markdown 实时预览
" 打开 Markdown 文件时自动启用预览
let g:mkdp_auto_start = 1

" 启用浏览器实时预览功能
let g:mkdp_browser = 'firefox'

" ========== 额外按键映射 ==========
" 保存文件快捷键
nnoremap <C-s> :w<CR>
